home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QuickTimeVR.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  26.0 KB  |  629 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QuickTimeVR.p
  3.  
  4.      Contains:    QuickTime VR interfaces
  5.  
  6.      Version:    Technology:    QuickTime VR 2.0.1
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT QuickTimeVR;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __QUICKTIMEVR__}
  28. {$SETC __QUICKTIMEVR__ := 1}
  29.  
  30. {$I+}
  31. {$SETC QuickTimeVRIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __CONDITIONALMACROS__}
  35. {$I ConditionalMacros.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __DIALOGS__}
  38. {$I Dialogs.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __MOVIES__}
  41. {$I Movies.p}
  42. {$ENDC}
  43.  
  44.  
  45. {$PUSH}
  46. {$ALIGN MAC68K}
  47. {$LibExport+}
  48.  
  49.  
  50. TYPE
  51.     QTVRInstance = ^LONGINT;
  52.  
  53.  
  54. CONST
  55.     kQTVRControllerSubType        = 'ctyp';
  56.     kQTVRQTVRType                = 'qtvr';
  57.     kQTVRPanoramaType            = 'pano';
  58.     kQTVRObjectType                = 'obje';
  59.     kQTVROldPanoType            = 'STpn';                        {  Used in QTVR 1.0 release }
  60.     kQTVROldObjectType            = 'stna';                        {  Used in QTVR 1.0 release }
  61.  
  62. {$IFC TARGET_OS_MAC }
  63. {$ELSEC}
  64. {$ENDC}  {TARGET_OS_MAC}
  65.  
  66. {  QTVR hot spot types }
  67.     kQTVRHotSpotLinkType        = 'link';
  68.     kQTVRHotSpotURLType            = 'url ';
  69.     kQTVRHotSpotUndefinedType    = 'undf';
  70.  
  71. {  Special Values for nodeID in QTVRGoToNodeID }
  72.     kQTVRCurrentNode            = 0;
  73.     kQTVRPreviousNode            = $80000000;
  74.     kQTVRDefaultNode            = $80000001;
  75.  
  76. {  Panorama correction modes used for the kQTVRImagingCorrection imaging property }
  77.     kQTVRNoCorrection            = 0;
  78.     kQTVRPartialCorrection        = 1;
  79.     kQTVRFullCorrection            = 2;
  80.  
  81. {  Imaging Modes used by QTVRSetImagingProperty, QTVRGetImagingProperty, QTVRUpdate, QTVRBeginUpdate }
  82.     kQTVRStatic                    = 1;
  83.     kQTVRMotion                    = 2;
  84.     kQTVRCurrentMode            = 0;                            {  Special Value for QTVRUpdate }
  85.     kQTVRAllModes                = 100;                            {  Special value for QTVRSetProperty }
  86.  
  87.  
  88. TYPE
  89.     QTVRImagingMode                        = UInt32;
  90. {  Imaging Properties used by QTVRSetImagingProperty, QTVRGetImagingProperty }
  91.  
  92. CONST
  93.     kQTVRImagingCorrection        = 1;
  94.     kQTVRImagingQuality            = 2;
  95.     kQTVRImagingDirectDraw        = 3;
  96.     kQTVRImagingCurrentMode        = 100;                            {  Get Only }
  97.  
  98. {  OR the above with kImagingDefaultValue to get/set the default value }
  99.     kImagingDefaultValue        = $80000000;
  100.  
  101. {  Transition Types used by QTVRSetTransitionProperty, QTVREnableTransition }
  102.     kQTVRTransitionSwing        = 1;
  103.  
  104. {  Transition Properties QTVRSetTransitionProperty }
  105.     kQTVRTransitionSpeed        = 1;
  106.     kQTVRTransitionDirection    = 2;
  107.  
  108. {  Constraint values used to construct value returned by GetConstraintStatus }
  109.     kQTVRUnconstrained            = 0;
  110.     kQTVRCantPanLeft            = $01;
  111.     kQTVRCantPanRight            = $02;
  112.     kQTVRCantPanUp                = $04;
  113.     kQTVRCantPanDown            = $08;
  114.     kQTVRCantZoomIn                = $10;
  115.     kQTVRCantZoomOut            = $20;
  116.     kQTVRCantTranslateLeft        = $40;
  117.     kQTVRCantTranslateRight        = $80;
  118.     kQTVRCantTranslateUp        = $0100;
  119.     kQTVRCantTranslateDown        = $0200;
  120.  
  121. {  Properties for use with QTVRSetInteractionProperty/GetInteractionProperty }
  122.     kQTVRInteractionMouseClickHysteresis = 1;                    {  pixels within which the mouse is considered not to have moved (UInt16) }
  123.     kQTVRInteractionMouseClickTimeout = 2;                        {  ticks after which a mouse click times out and turns into panning (UInt32) }
  124.     kQTVRInteractionPanTiltSpeed = 3;                            {  control the relative pan/tilt speed from 1 (slowest) to 10 (fastest). (UInt32) Default is 5; }
  125.     kQTVRInteractionZoomSpeed    = 4;                            {  control the relative zooming speed from 1 (slowest) to 10 (fastest). (UInt32) Default is 5; }
  126.     kQTVRInteractionTranslateOnMouseDown = 101;                    {  Holding MouseDown with this setting translates zoomed object movies (Boolean) }
  127.     kQTVRInteractionMouseMotionScale = 102;                        {  The maximum angle of rotation caused by dragging across the display window. (* float) }
  128.  
  129. {  OR the above with kQTVRInteractionDefaultValue to get/set the default value }
  130.     kQTVRInteractionDefaultValue = $80000000;
  131.  
  132. {  Resolution constants used in QTVRSetCachePrefs, QTVRGetCacheSettings, QTVRGetCacheMemInfo }
  133.     kQTVRDefaultRes                = 0;
  134.     kQTVRFullRes                = $01;
  135.     kQTVRHalfRes                = $02;
  136.     kQTVRQuarterRes                = $04;
  137.  
  138. {  Cache Size Pref constants used in QTVRSetCachePrefs, QTVRGetCacheSettings }
  139.     kQTVRMinimumCache            = -1;
  140.     kQTVRSuggestedCache            = 0;
  141.     kQTVRFullCache                = 1;
  142.  
  143. {  Pixel depth constants used in QTVRSetCachePrefs, QTVRGetCacheMemInfo }
  144.     kQTVRUseMovieDepth            = 0;
  145.     kQTVRDepth16                = 16;
  146.     kQTVRDepth32                = 32;
  147.  
  148. {  Angular units used by QTVRSetAngularUnits }
  149.     kQTVRDegrees                = 0;
  150.     kQTVRRadians                = 1;
  151.  
  152.  
  153. TYPE
  154.     QTVRAngularUnits                    = UInt32;
  155. {  Values for enableFlag parameter in QTVREnableHotSpot }
  156.  
  157. CONST
  158.     kQTVRHotSpotID                = 0;
  159.     kQTVRHotSpotType            = 1;
  160.     kQTVRAllHotSpots            = 2;
  161.  
  162. {  Values for kind parameter in QTVRGet/SetConstraints, QTVRGetViewingLimits }
  163.     kQTVRPan                    = 0;
  164.     kQTVRTilt                    = 1;
  165.     kQTVRFieldOfView            = 2;
  166.     kQTVRViewCenterH            = 4;                            {  WrapAndConstrain only }
  167.     kQTVRViewCenterV            = 5;                            {  WrapAndConstrain only }
  168.  
  169. {  Values for setting parameter in QTVRSetAnimationSetting, QTVRGetAnimationSetting }
  170.     kQTVRPalindromeViewFrames    = 1;                            {  View Frame Animation Settings }
  171.     kQTVRStartFirstViewFrame    = 2;
  172.     kQTVRDontLoopViewFrames        = 3;
  173.     kQTVRSyncViewToFrameRate    = 16;                            {  View Animation Settings }
  174.     kQTVRPalindromeViews        = 17;
  175.  
  176.  
  177. TYPE
  178.     QTVRObjectAnimationSetting            = UInt32;
  179.  
  180. CONST
  181.     kQTVRWrapPan                = 1;
  182.     kQTVRWrapTilt                = 2;
  183.     kQTVRCanZoom                = 3;
  184.     kQTVRReverseHControl        = 4;
  185.     kQTVRReverseVControl        = 5;
  186.     kQTVRSwapHVControl            = 6;
  187.     kQTVRTranslation            = 7;
  188.  
  189.  
  190. TYPE
  191.     QTVRControlSetting                    = UInt32;
  192.  
  193. CONST
  194.     kQTVRDefault                = 0;
  195.     kQTVRCurrent                = 2;
  196.     kQTVRMouseDown                = 3;
  197.  
  198.  
  199. TYPE
  200.     QTVRViewStateType                    = UInt32;
  201.  
  202. CONST
  203.     kQTVRRight                    = 0;
  204.     kQTVRUpRight                = 45;
  205.     kQTVRUp                        = 90;
  206.     kQTVRUpLeft                    = 135;
  207.     kQTVRLeft                    = 180;
  208.     kQTVRDownLeft                = 225;
  209.     kQTVRDown                    = 270;
  210.     kQTVRDownRight                = 315;
  211.  
  212.  
  213. TYPE
  214.     QTVRNudgeControl                    = UInt32;
  215. {  Flags to control elements of the QTVR control bar (set via mcActionSetFlags)  }
  216.  
  217. CONST
  218.     mcFlagQTVRSuppressBackBtn    = $00010000;
  219.     mcFlagQTVRSuppressZoomBtns    = $00020000;
  220.     mcFlagQTVRSuppressHotSpotBtn = $00040000;
  221.     mcFlagQTVRSuppressTranslateBtn = $00080000;
  222.     mcFlagQTVRSuppressHelpText    = $00100000;
  223.     mcFlagQTVRSuppressHotSpotNames = $00200000;
  224.     mcFlagQTVRExplicitFlagSet    = $80000000;                    {  bits 0->30 should be interpreted as "explicit on" for the corresponding suppression bits }
  225.  
  226. {  Cursor types used in type field of QTVRCursorRecord }
  227.     kQTVRUseDefaultCursor        = 0;
  228.     kQTVRStdCursorType            = 1;
  229.     kQTVRColorCursorType        = 2;
  230.  
  231. {  Values for flags parameter in QTVRMouseOverHotSpot callback }
  232.     kQTVRHotSpotEnter            = 0;
  233.     kQTVRHotSpotWithin            = 1;
  234.     kQTVRHotSpotLeave            = 2;
  235.  
  236. {  Values for flags field of areasOfInterest in QTVRSetBackBufferImagingProc }
  237.     kQTVRBackBufferEveryUpdate    = $01;
  238.     kQTVRBackBufferEveryIdle    = $02;
  239.     kQTVRBackBufferAlwaysRefresh = $04;
  240.     kQTVRBackBufferHorizontal    = $08;                            {  not supported in 2.0 }
  241.  
  242. {  Values for flagsIn parameter in QTVRBackBufferImaging callback }
  243.     kQTVRBackBufferRectVisible    = $01;
  244.     kQTVRBackBufferWasRefreshed    = $02;
  245.  
  246. {  Values for flagsOut parameter in QTVRBackBufferImaging callback }
  247.     kQTVRBackBufferFlagDidDraw    = $01;
  248.     kQTVRBackBufferFlagLastFlag    = $80000000;
  249.  
  250. {  QTVRCursorRecord used in QTVRReplaceCursor }
  251.  
  252. TYPE
  253.     QTVRCursorRecordPtr = ^QTVRCursorRecord;
  254.     QTVRCursorRecord = RECORD
  255.         theType:                UInt16;                                    {  field was previously named "type" }
  256.         rsrcID:                    SInt16;
  257.         handle:                    Handle;
  258.     END;
  259.  
  260.     QTVRFloatPointPtr = ^QTVRFloatPoint;
  261.     QTVRFloatPoint = RECORD
  262.         x:                        Single;
  263.         y:                        Single;
  264.     END;
  265.  
  266. {  Struct used for areasOfInterest parameter in QTVRSetBackBufferImagingProc }
  267.     QTVRAreaOfInterestPtr = ^QTVRAreaOfInterest;
  268.     QTVRAreaOfInterest = RECORD
  269.         panAngle:                Single;
  270.         tiltAngle:                Single;
  271.         width:                    Single;
  272.         height:                    Single;
  273.         flags:                    UInt32;
  274.     END;
  275.  
  276. {
  277.   =================================================================================================
  278.    Callback routines 
  279.   -------------------------------------------------------------------------------------------------
  280. }
  281.  
  282.     QTVRLeavingNodeProcPtr = ProcPtr;  { FUNCTION QTVRLeavingNode(qtvr: QTVRInstance; fromNodeID: UInt32; toNodeID: UInt32; VAR cancel: BOOLEAN; refCon: SInt32): OSErr; }
  283.  
  284.     QTVREnteringNodeProcPtr = ProcPtr;  { FUNCTION QTVREnteringNode(qtvr: QTVRInstance; nodeID: UInt32; refCon: SInt32): OSErr; }
  285.  
  286.     QTVRMouseOverHotSpotProcPtr = ProcPtr;  { FUNCTION QTVRMouseOverHotSpot(qtvr: QTVRInstance; hotSpotID: UInt32; flags: UInt32; refCon: SInt32): OSErr; }
  287.  
  288.     QTVRImagingCompleteProcPtr = ProcPtr;  { FUNCTION QTVRImagingComplete(qtvr: QTVRInstance; refCon: SInt32): OSErr; }
  289.  
  290.     QTVRBackBufferImagingProcPtr = ProcPtr;  { FUNCTION QTVRBackBufferImaging(qtvr: QTVRInstance; VAR drawRect: Rect; areaIndex: UInt16; flagsIn: UInt32; VAR flagsOut: UInt32; refCon: SInt32): OSErr; }
  291.  
  292.     QTVRLeavingNodeUPP = UniversalProcPtr;
  293.     QTVREnteringNodeUPP = UniversalProcPtr;
  294.     QTVRMouseOverHotSpotUPP = UniversalProcPtr;
  295.     QTVRImagingCompleteUPP = UniversalProcPtr;
  296.     QTVRBackBufferImagingUPP = UniversalProcPtr;
  297.  
  298. CONST
  299.     uppQTVRLeavingNodeProcInfo = $0000FFE0;
  300.     uppQTVREnteringNodeProcInfo = $00000FE0;
  301.     uppQTVRMouseOverHotSpotProcInfo = $00003FE0;
  302.     uppQTVRImagingCompleteProcInfo = $000003E0;
  303.     uppQTVRBackBufferImagingProcInfo = $0003FBE0;
  304.  
  305. FUNCTION NewQTVRLeavingNodeProc(userRoutine: QTVRLeavingNodeProcPtr): QTVRLeavingNodeUPP;
  306.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  307.     INLINE $2E9F;
  308.     {$ENDC}
  309.  
  310. FUNCTION NewQTVREnteringNodeProc(userRoutine: QTVREnteringNodeProcPtr): QTVREnteringNodeUPP;
  311.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  312.     INLINE $2E9F;
  313.     {$ENDC}
  314.  
  315. FUNCTION NewQTVRMouseOverHotSpotProc(userRoutine: QTVRMouseOverHotSpotProcPtr): QTVRMouseOverHotSpotUPP;
  316.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  317.     INLINE $2E9F;
  318.     {$ENDC}
  319.  
  320. FUNCTION NewQTVRImagingCompleteProc(userRoutine: QTVRImagingCompleteProcPtr): QTVRImagingCompleteUPP;
  321.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  322.     INLINE $2E9F;
  323.     {$ENDC}
  324.  
  325. FUNCTION NewQTVRBackBufferImagingProc(userRoutine: QTVRBackBufferImagingProcPtr): QTVRBackBufferImagingUPP;
  326.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  327.     INLINE $2E9F;
  328.     {$ENDC}
  329.  
  330. FUNCTION CallQTVRLeavingNodeProc(qtvr: QTVRInstance; fromNodeID: UInt32; toNodeID: UInt32; VAR cancel: BOOLEAN; refCon: SInt32; userRoutine: QTVRLeavingNodeUPP): OSErr;
  331.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  332.     INLINE $205F, $4E90;
  333.     {$ENDC}
  334.  
  335. FUNCTION CallQTVREnteringNodeProc(qtvr: QTVRInstance; nodeID: UInt32; refCon: SInt32; userRoutine: QTVREnteringNodeUPP): OSErr;
  336.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  337.     INLINE $205F, $4E90;
  338.     {$ENDC}
  339.  
  340. FUNCTION CallQTVRMouseOverHotSpotProc(qtvr: QTVRInstance; hotSpotID: UInt32; flags: UInt32; refCon: SInt32; userRoutine: QTVRMouseOverHotSpotUPP): OSErr;
  341.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  342.     INLINE $205F, $4E90;
  343.     {$ENDC}
  344.  
  345. FUNCTION CallQTVRImagingCompleteProc(qtvr: QTVRInstance; refCon: SInt32; userRoutine: QTVRImagingCompleteUPP): OSErr;
  346.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  347.     INLINE $205F, $4E90;
  348.     {$ENDC}
  349.  
  350. FUNCTION CallQTVRBackBufferImagingProc(qtvr: QTVRInstance; VAR drawRect: Rect; areaIndex: UInt16; flagsIn: UInt32; VAR flagsOut: UInt32; refCon: SInt32; userRoutine: QTVRBackBufferImagingUPP): OSErr;
  351.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  352.     INLINE $205F, $4E90;
  353.     {$ENDC}
  354. {
  355.   =================================================================================================
  356.     QTVR Intercept Struct, Callback, Routine Descriptors 
  357.   -------------------------------------------------------------------------------------------------
  358. }
  359.  
  360.  
  361. CONST
  362.     kQTVRSetPanAngleSelector    = $2000;
  363.     kQTVRSetTiltAngleSelector    = $2001;
  364.     kQTVRSetFieldOfViewSelector    = $2002;
  365.     kQTVRSetViewCenterSelector    = $2003;
  366.     kQTVRMouseEnterSelector        = $2004;
  367.     kQTVRMouseWithinSelector    = $2005;
  368.     kQTVRMouseLeaveSelector        = $2006;
  369.     kQTVRMouseDownSelector        = $2007;
  370.     kQTVRMouseStillDownSelector    = $2008;
  371.     kQTVRMouseUpSelector        = $2009;
  372.     kQTVRTriggerHotSpotSelector    = $200A;
  373.  
  374.  
  375. TYPE
  376.     QTVRProcSelector                    = UInt32;
  377.     QTVRInterceptRecordPtr = ^QTVRInterceptRecord;
  378.     QTVRInterceptRecord = RECORD
  379.         reserved1:                SInt32;
  380.         selector:                SInt32;
  381.         reserved2:                SInt32;
  382.         reserved3:                SInt32;
  383.         paramCount:                SInt32;
  384.         parameter:                ARRAY [0..5] OF Ptr;
  385.     END;
  386.  
  387.     QTVRInterceptPtr                    = ^QTVRInterceptRecord;
  388. {  Prototype for Intercept Proc callback }
  389.     QTVRInterceptProcPtr = ProcPtr;  { PROCEDURE QTVRIntercept(qtvr: QTVRInstance; qtvrMsg: QTVRInterceptPtr; refCon: SInt32; VAR cancel: BOOLEAN); }
  390.  
  391.     QTVRInterceptUPP = UniversalProcPtr;
  392.  
  393. CONST
  394.     uppQTVRInterceptProcInfo = $00003FC0;
  395.  
  396. FUNCTION NewQTVRInterceptProc(userRoutine: QTVRInterceptProcPtr): QTVRInterceptUPP;
  397.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  398.     INLINE $2E9F;
  399.     {$ENDC}
  400.  
  401. PROCEDURE CallQTVRInterceptProc(qtvr: QTVRInstance; qtvrMsg: QTVRInterceptPtr; refCon: SInt32; VAR cancel: BOOLEAN; userRoutine: QTVRInterceptUPP);
  402.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  403.     INLINE $205F, $4E90;
  404.     {$ENDC}
  405. {
  406.   =================================================================================================
  407.     General QTVR calls 
  408.   -------------------------------------------------------------------------------------------------
  409. }
  410.  
  411. FUNCTION QTVRGetQTVRTrack(theMovie: Movie; index: SInt32): Track; C;
  412. FUNCTION QTVRGetQTVRInstance(VAR qtvr: QTVRInstance; qtvrTrack: Track; mc: MovieController): OSErr; C;
  413. {
  414.   =================================================================================================
  415.     Viewing Angles and Zooming 
  416.   -------------------------------------------------------------------------------------------------
  417. }
  418.  
  419. FUNCTION QTVRSetPanAngle(qtvr: QTVRInstance; panAngle: Single): OSErr; C;
  420. FUNCTION QTVRGetPanAngle(qtvr: QTVRInstance): Single; C;
  421. FUNCTION QTVRSetTiltAngle(qtvr: QTVRInstance; tiltAngle: Single): OSErr; C;
  422. FUNCTION QTVRGetTiltAngle(qtvr: QTVRInstance): Single; C;
  423. FUNCTION QTVRSetFieldOfView(qtvr: QTVRInstance; fieldOfView: Single): OSErr; C;
  424. FUNCTION QTVRGetFieldOfView(qtvr: QTVRInstance): Single; C;
  425. FUNCTION QTVRShowDefaultView(qtvr: QTVRInstance): OSErr; C;
  426. {  Object Specific }
  427. FUNCTION QTVRSetViewCenter(qtvr: QTVRInstance; {CONST}VAR viewCenter: QTVRFloatPoint): OSErr; C;
  428. FUNCTION QTVRGetViewCenter(qtvr: QTVRInstance; VAR viewCenter: QTVRFloatPoint): OSErr; C;
  429. FUNCTION QTVRNudge(qtvr: QTVRInstance; direction: QTVRNudgeControl): OSErr; C;
  430. {
  431.   =================================================================================================
  432.     Scene and Node Location Information 
  433.   -------------------------------------------------------------------------------------------------
  434. }
  435.  
  436. FUNCTION QTVRGetVRWorld(qtvr: QTVRInstance; VAR VRWorld: QTAtomContainer): OSErr; C;
  437. FUNCTION QTVRGoToNodeID(qtvr: QTVRInstance; nodeID: UInt32): OSErr; C;
  438. FUNCTION QTVRGetCurrentNodeID(qtvr: QTVRInstance): UInt32; C;
  439. FUNCTION QTVRGetNodeType(qtvr: QTVRInstance; nodeID: UInt32): LONGINT; C;
  440. {
  441.   =================================================================================================
  442.     Hot Spot related calls 
  443.   -------------------------------------------------------------------------------------------------
  444. }
  445.  
  446. FUNCTION QTVRPtToHotSpotID(qtvr: QTVRInstance; pt: Point; VAR hotSpotID: UInt32): OSErr; C;
  447. FUNCTION QTVRGetNodeInfo(qtvr: QTVRInstance; nodeID: UInt32; VAR nodeInfo: QTAtomContainer): OSErr; C;
  448. FUNCTION QTVRTriggerHotSpot(qtvr: QTVRInstance; hotSpotID: UInt32; nodeInfo: QTAtomContainer; selectedAtom: QTAtom): OSErr; C;
  449. FUNCTION QTVRSetMouseOverHotSpotProc(qtvr: QTVRInstance; mouseOverHotSpotProc: QTVRMouseOverHotSpotUPP; refCon: SInt32; flags: UInt32): OSErr; C;
  450. FUNCTION QTVREnableHotSpot(qtvr: QTVRInstance; enableFlag: UInt32; hotSpotValue: UInt32; enable: BOOLEAN): OSErr; C;
  451. FUNCTION QTVRGetVisibleHotSpots(qtvr: QTVRInstance; hotSpots: Handle): UInt32; C;
  452. FUNCTION QTVRGetHotSpotRegion(qtvr: QTVRInstance; hotSpotID: UInt32; hotSpotRegion: RgnHandle): OSErr; C;
  453. {
  454.   =================================================================================================
  455.     Event & Cursor Handling Calls 
  456.   -------------------------------------------------------------------------------------------------
  457. }
  458.  
  459. FUNCTION QTVRSetMouseOverTracking(qtvr: QTVRInstance; enable: BOOLEAN): OSErr; C;
  460. FUNCTION QTVRGetMouseOverTracking(qtvr: QTVRInstance): BOOLEAN; C;
  461. FUNCTION QTVRSetMouseDownTracking(qtvr: QTVRInstance; enable: BOOLEAN): OSErr; C;
  462. FUNCTION QTVRGetMouseDownTracking(qtvr: QTVRInstance): BOOLEAN; C;
  463. FUNCTION QTVRMouseEnter(qtvr: QTVRInstance; pt: Point; VAR hotSpotID: UInt32; w: WindowPtr): OSErr; C;
  464. FUNCTION QTVRMouseWithin(qtvr: QTVRInstance; pt: Point; VAR hotSpotID: UInt32; w: WindowPtr): OSErr; C;
  465. FUNCTION QTVRMouseLeave(qtvr: QTVRInstance; pt: Point; w: WindowPtr): OSErr; C;
  466. FUNCTION QTVRMouseDown(qtvr: QTVRInstance; pt: Point; when: UInt32; modifiers: UInt16; VAR hotSpotID: UInt32; w: WindowPtr): OSErr; C;
  467. FUNCTION QTVRMouseStillDown(qtvr: QTVRInstance; pt: Point; VAR hotSpotID: UInt32; w: WindowPtr): OSErr; C;
  468. FUNCTION QTVRMouseUp(qtvr: QTVRInstance; pt: Point; VAR hotSpotID: UInt32; w: WindowPtr): OSErr; C;
  469. {  These require kQTVRAPIMajorVersion02 and kQTVRAPIMinorVersion01 }
  470. FUNCTION QTVRMouseStillDownExtended(qtvr: QTVRInstance; pt: Point; VAR hotSpotID: UInt32; w: WindowPtr; when: UInt32; modifiers: UInt16): OSErr; C;
  471. FUNCTION QTVRMouseUpExtended(qtvr: QTVRInstance; pt: Point; VAR hotSpotID: UInt32; w: WindowPtr; when: UInt32; modifiers: UInt16): OSErr; C;
  472. {
  473.   =================================================================================================
  474.     Intercept Routines 
  475.   -------------------------------------------------------------------------------------------------
  476. }
  477.  
  478. FUNCTION QTVRInstallInterceptProc(qtvr: QTVRInstance; selector: QTVRProcSelector; interceptProc: QTVRInterceptUPP; refCon: SInt32; flags: UInt32): OSErr; C;
  479. FUNCTION QTVRCallInterceptedProc(qtvr: QTVRInstance; VAR qtvrMsg: QTVRInterceptRecord): OSErr; C;
  480. {
  481.   =================================================================================================
  482.     Object Movie Specific Calls 
  483.   -------------------------------------------------------------------------------------------------
  484. }
  485.  
  486. FUNCTION QTVRSetFrameRate(qtvr: QTVRInstance; rate: Single): OSErr; C;
  487. FUNCTION QTVRGetFrameRate(qtvr: QTVRInstance): Single; C;
  488. FUNCTION QTVRSetViewRate(qtvr: QTVRInstance; rate: Single): OSErr; C;
  489. FUNCTION QTVRGetViewRate(qtvr: QTVRInstance): Single; C;
  490. FUNCTION QTVRSetViewCurrentTime(qtvr: QTVRInstance; time: TimeValue): OSErr; C;
  491. FUNCTION QTVRGetViewCurrentTime(qtvr: QTVRInstance): TimeValue; C;
  492. FUNCTION QTVRGetCurrentViewDuration(qtvr: QTVRInstance): TimeValue; C;
  493. {
  494.   =================================================================================================
  495.    View State Calls - QTVR Object Only
  496.   -------------------------------------------------------------------------------------------------
  497. }
  498.  
  499. FUNCTION QTVRSetViewState(qtvr: QTVRInstance; viewStateType: QTVRViewStateType; state: UInt16): OSErr; C;
  500. FUNCTION QTVRGetViewState(qtvr: QTVRInstance; viewStateType: QTVRViewStateType; VAR state: UInt16): OSErr; C;
  501. FUNCTION QTVRGetViewStateCount(qtvr: QTVRInstance): UInt16; C;
  502. FUNCTION QTVRSetAnimationSetting(qtvr: QTVRInstance; setting: QTVRObjectAnimationSetting; enable: BOOLEAN): OSErr; C;
  503. FUNCTION QTVRGetAnimationSetting(qtvr: QTVRInstance; setting: QTVRObjectAnimationSetting; VAR enable: BOOLEAN): OSErr; C;
  504. FUNCTION QTVRSetControlSetting(qtvr: QTVRInstance; setting: QTVRControlSetting; enable: BOOLEAN): OSErr; C;
  505. FUNCTION QTVRGetControlSetting(qtvr: QTVRInstance; setting: QTVRControlSetting; VAR enable: BOOLEAN): OSErr; C;
  506. FUNCTION QTVREnableFrameAnimation(qtvr: QTVRInstance; enable: BOOLEAN): OSErr; C;
  507. FUNCTION QTVRGetFrameAnimation(qtvr: QTVRInstance): BOOLEAN; C;
  508. FUNCTION QTVREnableViewAnimation(qtvr: QTVRInstance; enable: BOOLEAN): OSErr; C;
  509. FUNCTION QTVRGetViewAnimation(qtvr: QTVRInstance): BOOLEAN; C;
  510.  
  511. {
  512.   =================================================================================================
  513.     Imaging Characteristics 
  514.   -------------------------------------------------------------------------------------------------
  515. }
  516.  
  517. FUNCTION QTVRSetVisible(qtvr: QTVRInstance; visible: BOOLEAN): OSErr; C;
  518. FUNCTION QTVRGetVisible(qtvr: QTVRInstance): BOOLEAN; C;
  519. FUNCTION QTVRSetImagingProperty(qtvr: QTVRInstance; imagingMode: QTVRImagingMode; imagingProperty: UInt32; propertyValue: SInt32): OSErr; C;
  520. FUNCTION QTVRGetImagingProperty(qtvr: QTVRInstance; imagingMode: QTVRImagingMode; imagingProperty: UInt32; VAR propertyValue: SInt32): OSErr; C;
  521. FUNCTION QTVRUpdate(qtvr: QTVRInstance; imagingMode: QTVRImagingMode): OSErr; C;
  522. FUNCTION QTVRBeginUpdateStream(qtvr: QTVRInstance; imagingMode: QTVRImagingMode): OSErr; C;
  523. FUNCTION QTVREndUpdateStream(qtvr: QTVRInstance): OSErr; C;
  524. FUNCTION QTVRSetTransitionProperty(qtvr: QTVRInstance; transitionType: UInt32; transitionProperty: UInt32; transitionValue: SInt32): OSErr; C;
  525. FUNCTION QTVREnableTransition(qtvr: QTVRInstance; transitionType: UInt32; enable: BOOLEAN): OSErr; C;
  526. {
  527.   =================================================================================================
  528.     Basic Conversion and Math Routines 
  529.   -------------------------------------------------------------------------------------------------
  530. }
  531.  
  532. FUNCTION QTVRSetAngularUnits(qtvr: QTVRInstance; units: QTVRAngularUnits): OSErr; C;
  533. FUNCTION QTVRGetAngularUnits(qtvr: QTVRInstance): QTVRAngularUnits; C;
  534. {  Pano specific routines }
  535. FUNCTION QTVRPtToAngles(qtvr: QTVRInstance; pt: Point; VAR panAngle: Single; VAR tiltAngle: Single): OSErr; C;
  536. FUNCTION QTVRCoordToAngles(qtvr: QTVRInstance; VAR coord: QTVRFloatPoint; VAR panAngle: Single; VAR tiltAngle: Single): OSErr; C;
  537. FUNCTION QTVRAnglesToCoord(qtvr: QTVRInstance; panAngle: Single; tiltAngle: Single; VAR coord: QTVRFloatPoint): OSErr; C;
  538. {  Object specific routines }
  539. FUNCTION QTVRPanToColumn(qtvr: QTVRInstance; panAngle: Single): INTEGER; C;
  540. {  zero based     }
  541. FUNCTION QTVRColumnToPan(qtvr: QTVRInstance; column: INTEGER): Single; C;
  542. {  zero based     }
  543. FUNCTION QTVRTiltToRow(qtvr: QTVRInstance; tiltAngle: Single): INTEGER; C;
  544. {  zero based     }
  545. FUNCTION QTVRRowToTilt(qtvr: QTVRInstance; row: INTEGER): Single; C;
  546. {  zero based                 }
  547. FUNCTION QTVRWrapAndConstrain(qtvr: QTVRInstance; kind: INTEGER; value: Single; VAR result: Single): OSErr; C;
  548.  
  549. {
  550.   =================================================================================================
  551.     Interaction Routines 
  552.   -------------------------------------------------------------------------------------------------
  553. }
  554.  
  555. FUNCTION QTVRSetEnteringNodeProc(qtvr: QTVRInstance; enteringNodeProc: QTVREnteringNodeUPP; refCon: SInt32; flags: UInt32): OSErr; C;
  556. FUNCTION QTVRSetLeavingNodeProc(qtvr: QTVRInstance; leavingNodeProc: QTVRLeavingNodeUPP; refCon: SInt32; flags: UInt32): OSErr; C;
  557. FUNCTION QTVRSetInteractionProperty(qtvr: QTVRInstance; property: UInt32; value: UNIV Ptr): OSErr; C;
  558. FUNCTION QTVRGetInteractionProperty(qtvr: QTVRInstance; property: UInt32; value: UNIV Ptr): OSErr; C;
  559. FUNCTION QTVRReplaceCursor(qtvr: QTVRInstance; VAR cursRecord: QTVRCursorRecord): OSErr; C;
  560. {
  561.   =================================================================================================
  562.     Viewing Limits and Constraints 
  563.   -------------------------------------------------------------------------------------------------
  564. }
  565.  
  566. FUNCTION QTVRGetViewingLimits(qtvr: QTVRInstance; kind: UInt16; VAR minValue: Single; VAR maxValue: Single): OSErr; C;
  567. FUNCTION QTVRGetConstraintStatus(qtvr: QTVRInstance): UInt32; C;
  568. FUNCTION QTVRGetConstraints(qtvr: QTVRInstance; kind: UInt16; VAR minValue: Single; VAR maxValue: Single): OSErr; C;
  569. FUNCTION QTVRSetConstraints(qtvr: QTVRInstance; kind: UInt16; minValue: Single; maxValue: Single): OSErr; C;
  570.  
  571. {
  572.   =================================================================================================
  573.     Memory Management 
  574.   -------------------------------------------------------------------------------------------------
  575. }
  576.  
  577. FUNCTION QTVRGetAvailableResolutions(qtvr: QTVRInstance; VAR resolutionsMask: UInt16): OSErr; C;
  578. FUNCTION QTVRGetCacheMemInfo(qtvr: QTVRInstance; resolution: UInt16; cacheDepth: SInt16; VAR minCacheBytes: SInt32; VAR suggestedCacheBytes: SInt32; VAR fullCacheBytes: SInt32): OSErr; C;
  579. FUNCTION QTVRGetCacheSettings(qtvr: QTVRInstance; VAR resolution: UInt16; VAR cacheDepth: SInt16; VAR cacheSize: SInt16): OSErr; C;
  580. FUNCTION QTVRSetCachePrefs(qtvr: QTVRInstance; resolution: UInt16; cacheDepth: SInt16; cacheSize: SInt16): OSErr; C;
  581. {
  582.   =================================================================================================
  583.     Buffer Access 
  584.   -------------------------------------------------------------------------------------------------
  585. }
  586.  
  587. FUNCTION QTVRSetPrescreenImagingCompleteProc(qtvr: QTVRInstance; imagingCompleteProc: QTVRImagingCompleteUPP; refCon: SInt32; flags: UInt32): OSErr; C;
  588. FUNCTION QTVRSetBackBufferImagingProc(qtvr: QTVRInstance; backBufferImagingProc: QTVRBackBufferImagingUPP; numAreas: UInt16; VAR areasOfInterest: QTVRAreaOfInterest; refCon: SInt32): OSErr; C;
  589. FUNCTION QTVRRefreshBackBuffer(qtvr: QTVRInstance; flags: UInt32): OSErr; C;
  590.  
  591.  
  592. {
  593.   =================================================================================================
  594.     Old Names
  595.   -------------------------------------------------------------------------------------------------
  596. }
  597. {$IFC OLDROUTINENAMES }
  598.  
  599. TYPE
  600.     CursorRecord                        = QTVRCursorRecord;
  601.     CursorRecordPtr                     = ^CursorRecord;
  602.     AreaOfInterest                        = QTVRAreaOfInterest;
  603.     AreaOfInterestPtr                     = ^AreaOfInterest;
  604.     FloatPoint                            = QTVRFloatPoint;
  605.     FloatPointPtr                         = ^FloatPoint;
  606.     LeavingNodeProcPtr                    = QTVRLeavingNodeProcPtr;
  607.     LeavingNodeUPP                        = QTVRLeavingNodeUPP;
  608.     EnteringNodeProcPtr                    = QTVREnteringNodeProcPtr;
  609.     EnteringNodeUPP                        = QTVREnteringNodeUPP;
  610.     MouseOverHotSpotProcPtr                = QTVRMouseOverHotSpotProcPtr;
  611.     MouseOverHotSpotUPP                    = QTVRMouseOverHotSpotUPP;
  612.     ImagingCompleteProcPtr                = QTVRImagingCompleteProcPtr;
  613.     ImagingCompleteUPP                    = QTVRImagingCompleteUPP;
  614.     BackBufferImagingProcPtr            = QTVRBackBufferImagingProcPtr;
  615.     BackBufferImagingUPP                = QTVRBackBufferImagingUPP;
  616. {$ENDC}  {OLDROUTINENAMES}
  617.  
  618.  
  619. {$ALIGN RESET}
  620. {$POP}
  621.  
  622. {$SETC UsingIncludes := QuickTimeVRIncludes}
  623.  
  624. {$ENDC} {__QUICKTIMEVR__}
  625.  
  626. {$IFC NOT UsingIncludes}
  627.  END.
  628. {$ENDC}
  629.